/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package factoryTotal;

import java.util.ArrayList;

/**
 *
 * @author wida46984148
 */
public class Choques {
    boolean surt = false;
    int cnt = 0;    //disparos acertados    cosas de pol (8)
    int cnt1 = 0;   //disparos enemigo0
    int cnt2 = 0;   //disparos enemigo1
    int cnt3 = 0;   //disparos enemigo2
    int cntTT = 0;

    public void controlChoques(ArrayList<Disparo> disparosEnemigo, ArrayList<NaveBaseEnemiga> naveEnemiga,
            NaveBase naveWida, ArrayList<Disparo> disparosWida) {
        NaveWida NaveW = (NaveWida)naveWida;

        try {
            //nau-W vs nau-enemiga
            for (Object ob1 : naveEnemiga) {
                NaveBaseEnemiga ne1 = (NaveBaseEnemiga) ob1;
                    if (ne1.choque(NaveW.getShape()) && ne1.pY <= NaveW.pY ) {
                        NaveW.destruido = true;
                        if(!(ne1 instanceof NaveBoss)) naveEnemiga.remove(ne1);
                    }
            }

            //shoot-W vs nau-enemig
            for (Object ob1 : naveEnemiga) {
                NaveBaseEnemiga ne1 = (NaveBaseEnemiga) ob1;
                for (Object ob2 : disparosWida) {
                    Disparo dw = (Disparo) ob2;
                    if (ne1.choque(dw.getShape())) {
                        if(ne1 instanceof NaveBoss && dw instanceof DisparoBomba){
                            ne1.impacto(dw.getDaño()/5);
                        }else if (dw.pY > 10 ) {
                            ne1.impacto(dw.getDaño());
                        }
                        cnt++;
                        dw.impacto();
                        disparosWida.remove(dw);
                        if (ne1.isMort())naveEnemiga.remove(ne1);
                        if(ne1.isMort()){
                            if(ne1 instanceof NaveEnemiga1){
                                NaveW.setPuntuancion(100);
                                cnt1++;
                            } else if (ne1 instanceof NaveEnemiga2){
                                NaveW.setPuntuancion(200);
                                cnt2++;
                            } else if (ne1 instanceof NaveEnemiga3){
                                NaveW.setPuntuancion(500);
                                cnt3++;
                            } else if (ne1 instanceof NaveBoss){
                                NaveW.setPuntuancion(800);
                            }
                            cntTT = cnt+cnt1+cnt2+cnt3;
                        }
                    }
                }
            }

            //nau-W vs shoot-enemig
            for (Object ob2 : disparosEnemigo) {
                Disparo st2 = (Disparo) ob2;
                    if (NaveW.choque(st2.getShape()) && st2.pY <= NaveW.pY) {
                        NaveW.impacto(st2.getDaño());
                        if(!(st2 instanceof DisparoLaser)) {
                            st2.destruido = true;
                        } else {
                            if(st2.pY < 600){
                                st2.destruido = true;
                            }
                        }
                    }
            }
        } catch (Exception e) {
        }

    }
}
